Eight-bit to ten-bit (8B/10B) encoding remains a popular encoding type for a variety of applications. For example, such encoding is commonly used in serial type interfaces, including Enterprise System Connection (ESCON®) promulgated by International Business Machines Corporation, Fibre Channel, Gigabit Ethernet, and the Digital Video Broadcast/Asynchronous Serial Interface (DVB/ASI).
An 8B/10B encoding arrangement is shown in U.S. Pat. No. 4,486,739, issued to Franaszek et al. on Dec. 4, 1984 (hereinafter the '739 patent). In addition to providing encoding for the 256 possible 8-bit data values, the '739 patent shows the generation of twelve 10-bit “special characters” that can be used for synchronization and other control functions. For example, some special characters, referred to as containing a “comma” in the '739 patent, can serve to indicate 10-bit character boundaries. In the code of the '739 patent, comma characters are indicated by a first seven bit sequence of 001111 1 (or the corresponding complement 110000 0).
In this discussion, the bit positions of resulting 10-bit encoded data values and special characters can be designated by the letters abcdei fghj, where letters abcdei designate the first through sixth bit positions, while letters fghj designate the seventh through tenth bit positions.
All characters of the '739 patent meet a number of criteria, including a transition matrix and both an inter- and intra-character run length limitation (Dx.P7/Ky.A7 encoder rule). The transition matrix is shown in FIG. 2 of the '739 patent, and illustrates how an absolute disparity value remains below limits as each bit is transmitted. In particular, assuming a starting disparity is +1 or −1, the absolute disparity value after the first bit, third bit, fifth bit, seventh bit, or ninth bit is not greater than 2, after the second bit and fourth bit is not greater than 3, and after the sixth bit, eighth bit and tenth bit is not greater than one. The Dx.P7/Ky.A7 encoder rule prevents a run of the same bit type through positions 5 through 9.
Encoding data streams with the '739 can suffer from some drawbacks. In particular, one of the special characters “K28.7” (binary 110000 0111) when concatenated with itself, or other characters, can result in an “aliased” comma character. An aliased comma character can be undesirable as it may be erroneously interpreted as a character or other data boundary.
Still further, the code of the '739 patent includes twelve control codes. Such a non-binary multiple can be more complicated to employ in many data transmission operations, such as data scrambling, as but one example.
A second conventional coding approach is shown in the IEEE Standard 1394b “High-Performance Serial Bus” (hereinafter IEEE 1394b). The IEEE 1394b standard includes a data mapping arrangement like that of the '739 patent but includes a new mapping arrangement for special characters, called control characters. The IEEE 1394b standard provides 16 control characters that can operate through scrambler functions (prior to encoding), with the sixteen code locations mapping to other locations within the same space. Such scrambling can lower radiated emission that can occur when a same character (or group thereof) is repetitively used to maintain a link (e.g., an idle sequence).
While the control characters of the IEEE 1394b standard can provide for easier scrambling than the twelve character set of the '739 patent, this set may have undesirable characteristics for some applications. In particular, the control codes of the IEEE 1394b standard may not meet criteria originally established for the earlier 8B/10B encoding arrangement of the '739 patent.
For example, the IEEE 1394b control codes (1) can include a run length greater than 5-bits both within codes and across concatenated codes; (2) can include a disparity within 6-bit/4-bit subblocks of the codes having an absolute value greater than 2; (3) can have a starting and ending disparity within 6-bit/4-bit subblocks not equal to −1 or +1; (4) can have a comma sequence (001111 1 or 11000 0) that occurs across character boundaries when characters are concatenated; (5) does not meet the transition matrix shown in the '739 patent, and (6) violates the Dx.P7/Ky.A7 rule, noted above.
It is additionally noted that the IEEE 1394b control codes can generate run lengths (i.e., a continuous sequence of same bit value) of 10 bits when concatenated. This is twice the 5-bit limit of the '739 patent. Such a large run length can make an AC coupled transmission path more difficult to design, and can require an increase in the passband of all components within the transmission path. Further, such a large run length can require a longer time constant for optical automatic gain control (AGC) circuits.
Another potential disadvantage of the IEEE 1394b control codes can be that they are not backward compatible with existing 8B/10B hardware. Further, due to the presence of aliased comma sequences, the use of such codes can require alternate framing hardware.